Method And System For Distributing A Software Application To A Specified Recipient

ABSTRACT

The present invention is related to a computer-implemented method and system for allowing a user to distribute an application in an electronic device to at least one specified recipient. The method according to the present invention includes invoking a share function in the electronic device by the user, and in response to the user invoking the share function, transmitting automatically an install image associated with the application to the at least one specified recipient. According to the present invention, the install image is an installable copy of the application.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a Continuation application of co-pending U.S. patentapplication Ser. No. 10/818,598, filed Apr. 6, 2004, titled “Method andSystem for Distributing A Software Application to a SpecifiedRecipient,” (now U.S. Pat. No. ______, issued ______), which is commonlyowned with this application and is herein incorporated by reference.

FIELD OF THE INVENTION

The present invention relates to networked communications, and moreparticularly to, a method and system for using a computer system todistribute a software application to a specified recipient.

BACKGROUND OF THE INVENTION

Software applications for computer systems are widely available inretail stores, mail-order catalogs, and via the Internet, for example.Typically, a user who purchases a software application package eitherinstalls the application directly onto his or her computer system viaremovable media, e.g., compact disk (CD) or DVD, or downloads theapplication via a network communication, such as the Internet. If theuser wishes to share the application with another user, e.g., acoworker, the user can provide the removable media, if such isavailable, to the coworker so that the coworker can install theapplication on the coworker's computer system. If the removable media isnot available, the coworker might be able to download the applicationfrom the user's computer system, or copy the application from a networkhard drive. Alternatively, the user might be able to transmit theapplication in an electronic message to the coworker via email.

Each of the distribution mechanisms described above are functional, butcumbersome for the user. In every instance, the user must performnumerous tasks to share the application or module. For example, todistribute the application by email, the user must invoke the emailprogram, browse through the hard drive to retrieve the installationfile(s), and attach the installation file(s) to the email message. Inanother example, to distribute the application by FTP, the user mustplace the installation image or files on an available FTP server, notifythe intended recipients that the application is on the server, andprovide security and location information to the recipients.

Moreover, even if the user is able and willing to perform the tasksneeded to distribute the application, there still remains the problem ofdetermining which file(s) must be provided in order to distribute theapplication to the recipient. For example, often times, an installationimage for the application is not available and the necessary applicationfiles are scattered throughout the user's computer system. Identifyingand gathering the required application file(s) is not necessarily anintuitive task.

Accordingly, a need exists for an improved system and method that allowsa user to use a computer system to distribute a software application ormodule to others. Furthermore, there exists a need for a system andmethod for tracking such distribution of software applications. Thepresent invention addresses such a need.

SUMMARY OF THE INVENTION

The present invention provides a computer-implemented method and systemfor allowing a user to distribute an application in an electronic deviceto at least one specified recipient. The method according to the presentinvention includes invoking a share function by the user, and inresponse to the user invoking the share function, transmittingautomatically an install image associated with the application to the atleast one specified recipient. According to the present invention, theinstall image is an installable copy of the application. When it isreceived by the at least one specified recipient, the install imageautomatically installs and persistently stores the application onto adevice associated with the at least one specified recipient.

Through aspects of the present invention, the software application isprovided with an integrated share button that allows the user of theapplication to automatically distribute the application to a specifiedrecipient. When the share button is selected by the user, a sharefunction is automatically invoked. In one aspect of the invention, theshare function sends a self-installing copy of the application, referredto as an install image, from the user's computer to the specifiedrecipient. In another aspect of the invention, the share function asks acomputer system to send the install image to the specified recipient.Once the specified recipient receives the install image, the applicationis installed automatically and persistently stored onto the specifiedrecipient's computer system.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 depicts an exemplary window displayed by a photo-album viewingapplication.

FIG. 2 is a block diagram of a system in which a first preferredembodiment of the present invention may be implemented.

FIG. 3 is a flowchart illustrating a method by which an album viewingapplication is distributed according to the preferred embodiment of thepresent invention.

FIG. 4 is a flowchart illustrating a method for installing a softwareapplication in a recipient according to the first preferred embodimentof the present invention.

FIG. 5 is a block diagram of a system in which a second preferredembodiment of the present invention may be implemented.

FIG. 6 is a high level flowchart illustrating an applicationdistribution process according to the second preferred embodiment of thepresent invention.

FIGS. 7A-7C are flowcharts illustrating the distribution process in moredetail according to the second preferred embodiment of the presentinvention.

FIGS. 8A and 8B are exemplary templates according to the preferredembodiment of the present invention.

FIG. 9 is a flowchart for generating and transmitting a notify messageaccording to a preferred embodiment of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

The present invention relates to networked communications, and moreparticularly, to a method and system for distributing an application ina computer system to a specified recipient. The following description ispresented to enable one of ordinary skill in the art to make and use theinvention and is provided in the context of a patent application and itsrequirements. Various modifications to the preferred embodiment and thegeneric principles and features described herein will be readilyapparent to those skilled in the art. For example, while the preferredembodiment is described with respect to a photo-album viewingapplication, the principles described can also be applied to anysoftware application. Thus, the present invention is not intended to belimited to the embodiment shown but is to be accorded the widest scopeconsistent with the principles and features described herein.

According to a preferred embodiment of the present invention, a user ofan application or application module is allowed to distribute theapplication or module and associated data to a specified recipient via ashare function. The share function is automatically invoked when theuser selects a share button integrated into the application or module.Typically, an “application” comprises one or more modules. For purposesof the description of the present invention, however, the term“application” will be used to represent both, an application and anymodule(s) in the application. Thus, concepts that are described withrespect to an application are also applicable to a module in theapplication.

In FIG. 1 a window displayed by a photo-album viewing application isillustrated. Here, the application displays images 20 in an album viewerwindow 10. The window 10 includes an integrated Share button 50, which,when selected by the user, invokes the share function. Note that theShare button 50 can also be in a menu item 30, such as the Filepull-down menu 30 a for example. The share button 50 can also be in acontext menu or in a Start menu such that the share function can beinvoked without opening the application.

FIG. 2 is a block diagram of a system 200 utilizing the share functionaccording to a first preferred embodiment of the present invention. Thesystem 200 includes a user computer system 210 utilized by a user 211, arecipient computer system 230, and a management server 240. Preferably,the user 210 and recipient 230 systems are personal computers (PCs),workstations or the like. The management server 240 tracks and storesdistribution data between the user 210 and recipient 230 systems. Theuser system 210, recipient system 230, and management server 240 arecoupled to one another via a network 220, such as the Internet. The user210 and recipient 230 systems each include at least one message deliverymechanism, such as an email client 218, 218′.

According to the first preferred embodiment of the present invention,the user system 210 includes an application 212, such as the albumviewing application in FIG. 1, that includes a share function 214 and aninstall image 216, which is a self contained and compressed installableimage of the application 212, as is well known to those skilled in theart. In a preferred embodiment, the install image 216 can beself-executing, i.e., auto-installing, such that no other tool is neededto install the associated application 512. This type of install image216 is also well known in the art.

Although shown as being in the application 212, the share function 214can also be a separate module outside of the application 212 andaccessible by a plurality of applications (not shown). The sharefunction 214 allows the user 211 to distribute the application 212 andany associated data such as images 20 to the recipient system 230 merelyby selecting the integrated Share button 50 associated with theapplication 212.

FIG. 3 is a flowchart illustrating a method by which the album viewingapplication is distributed according to the preferred embodiment of thepresent invention. Referring to FIG. 2 and FIG. 3, the process beginswhen the application 212 is displayed to the user 211 with theintegrated share button 50, or alternatively, when the share button 50is displayed in the menu item 30, the context menu or start menu (step300). The user 211 selects the share button 50 to invoke the sharefunction 214 in the application 212 (step 301). When invoked by the user211, the share function 214 automatically retrieves or creates theinstall image 216 associated with the application 212 (step 302). In oneembodiment, the share function 214 retrieves the install image 216. Inanother embodiment, the share function 214 creates the install image 216by collecting from the user system 210 the files and data needed toinstall the application 212.

According to one aspect of the present invention, the share function 214optionally allows the user 211 to add images 20 and album data to theinstall image 216 associated with the application 212 (step 303). Oncethe install image 216 is finalized, the share function 214 invokes amessage delivery mechanism chosen by the user 211 (step 304) and appendsthe install image 216 thereto. Preferably, the share function 214invokes the system's default email client 218 and appends the installimage 216 to the email message 222 as an attachment (step 306). In afurther aspect of the present invention, the share function 214optionally inserts a script and an install button into the email message222 (step 308) so that when the install button is selected by therecipient 230, the attached install image 216 is automatically launched.

In step 310, the user is allowed to designate an address for at leastone recipient 230. The nature of the address depends on the deliverymechanism chosen by the user 211. So, for instance, if the deliverymechanism is the email client 218, the address is an email address.Whereas, if the delivery mechanism is an ftp client (not shown), theaddress is a URL.

After the user 211 has provided at least one address for one or morerecipients 230 (step 310), the message 222 is transmitted to thedesignated recipient(s) 230 (step 312). In step 314, the share function214 optionally transmits an event message 224 to the management server240 so that the distribution event can be recorded and tracked by, forexample, the licensor or developer of the application 212. The eventmessage 224 preferably includes distribution data relating to the user211, the recipient(s) 230, the application 212 and other relevantinformation.

Although FIG. 3 illustrates a process flow according to a firstpreferred embodiment of the present invention, those skilled in the artwill readily appreciate that the order in which the steps are presentedis not essential to the practice of the present invention. For instance,the retrieval of the install image 216 (step 302) can be performed afterthe delivery mechanism has been invoked (step 304), or the user 211 canprovide addresses (step 310) earlier in the process, e.g., before theinsertion of the script and install button (step 308). Accordingly, themethod of the present invention should not be limited by the sequence ofsteps illustrated in FIG. 3.

FIG. 4 is a flowchart illustrating a method for installing a softwareapplication in a recipient according to the first preferred embodimentof the present invention. Referring to FIG. 2 and FIG. 4, once therecipient system 230 receives the email message 222 including theinstall image 216, the recipient 231 can select the install button inthe email message 222 (step 400), which runs the script that launchesthe install image 216′ (step 402). Alternatively, the recipient 231 canlaunch the install image 216′ automatically by selecting, e.g.,double-clicking, the install image 216′. The install image 216′automatically installs the application 212′ and any associated data,e.g., images 20, on the recipient system 230 (step 404), and optionallylaunches the application 212′ (step 406). In step 408, the application212′ displays the album window 10 and images 20 shown in FIG. 1.

Once the application 212′ is installed onto the recipient system 230,the install image 216′ transmits an “installed” message 232 to themanagement server 240 so that the distribution event can be recorded andtracked (step 410). The installed message 232 preferably includesdistribution data relating to the user 211, the recipient(s) 231, theapplication 212′ and other relevant information.

In the first preferred embodiment, illustrated in FIGS. 2, 3 and 4, anddescribed above, the user system 210 transmits the install image 216associated with the application 212 directly to the recipient system230. In a second preferred embodiment, the user system 210 submits arequest to distribute the application 212 to the management server 240,where the install image 216 is stored and distributed to the recipientsystem 230 by the management server 240.

To describe in more detail the second preferred embodiment of thepresent invention, please refer to FIG. 5, which is a block diagram ofthe system 500, where similar components are identified by similarreference numerals. Here, in addition to user and recipient systems(510, 530), other network enabled devices, such as a mobile phone 502and camera 504, are coupled to the network 220. Each component (510,530, 502, 504) is capable of executing applications 512 and utilizesdifferent communication protocols in order to receive and transmit data.In turn, the management server 540 is capable of acceptingcommunications via a plurality of protocols, e.g., email, SMS, and MMS,to name a few.

According to the second preferred embodiment, a plurality of installimages 216 corresponding to a plurality of applications are storedpersistently in storage 542 at the management server 540. The pluralityof install images 216 include various versions of an application 512that may be specific to various device types and/or operatingenvironments. For example, the storage 542 includes install images 216associated with a version of an application 512 that is run on WindowsXP™ PCs, a Linux desktop version, a version for Java enabled mobiledevices, and various proprietary operating environments. Versioning bylanguage can also be supported, as well as versions of an application512 based on other criteria, such as custom versions for particularcorporate customers and versions based on recipient privileges.

The user system 510 includes the application 512 to be distributed. Notethat the application 512 may also reside in any one of the otherdevices, such as the mobile phone 502 or camera 504, and distributedtherefrom. Like the first preferred embodiment, the application 512comprises the share function 514 which is invoked when the user 211selects the share button 50 associated with the application 512. Unlikethe first preferred embodiment, however, the install image 216associated with the application 512 is stored in persistent storage 542at the management server 540.

FIG. 6 is a high level flowchart illustrating an applicationdistribution process according to the second preferred embodiment of thepresent invention. When the share function 514 is invoked by the user211, the share function 514 automatically transmits a request to themanagement server 540 to distribute the application 512 and anyassociated data to a specified recipient (step 600). In response, themanagement server 540 determines which version of the application 512 issuitable for the recipient device, e.g., 530 (step 602).

Once the appropriate version of the application is determined, themanagement server 540 sends the install image 216 associated with thatversion of the application 512 to the recipient device (step 604), e.g.,the recipient system 530, the mobile phone 502, and/or the camera 504.Once the recipient device receives the install image 216, the recipient231 launches the install image 216 which automatically installs theassociated application 512 onto the recipient system 530 (step 606).Lastly, the management server 540 records and tracks the distributionevent (step 608).

FIGS. 7A, 7B and 7C describe in more detail the distribution processaccording to the second preferred embodiment of the present invention.FIG. 7A illustrates the method by which the sending device, e.g., usersystem 510, transmits the request to distribute the application 512(i.e., step 600 in FIG. 6). FIGS. 7B and 7C illustrates the method bywhich the management server 540 determines the appropriate version ofthe application 512 to distribute (i.e., step 602), and the method bywhich the management server 540 sends the install image to the recipientdevice 530 (i.e., step 604). FIG. 7C further illustrates the method bywhich the recipient device 530 installs the application 512 via theinstall image 216 (i.e., step 606). Note that the sending and receivingdevices are not limited to the PCs (510 and 530) and can be othernetwork enabled devices such as the mobile phone 502 or camera 504.

Beginning with FIG. 7A and referring to FIG. 5, the distribution processbegins when the application 512, e.g., the photo-album viewingapplication, is displayed to the user 211 with the integrated sharebutton 50, or alternatively, when the share button 50 is displayed inthe menu item 30, the context menu or start menu (step 700). The user211 selects the share button 50 to invoke the share function 514 in theapplication 512 (step 702). When invoked by the user 211, the sharefunction 514 automatically creates a “distribute request” 522 thatincludes an identifier 524 associated with the application 512 to bedistributed (step 704). The user 211 is then allowed to provide at leastone address for the recipient(s) 530 (step 706). The address can dependon the recipient, e.g., 231, or the recipient device, e.g., 530.Therefore, the address can be an email address, SMS/MMS addresses, a URLor any other type of address including a postal address.

If the user 211 wishes to include other application specific data, suchas an album, with the application 512 (step 707), the data not alreadyon the server 550, e.g., images and album data, is uploaded to themanagement server 540 (step 708). Then, an identifier associated withthe uploaded data (not shown) is appended to the distribute request 522(step 709). When the distribute request 522 is completed, it preferablyincludes the application identifier 524, the at least one address forthe recipient(s) 530, an identifier associated with the user 211, andother data specific to the business purposes of the service provider.

Next, the share function 514 sends the request 522 to the managementserver 540 (step 710) preferably using a Simple Object Access Protocol(SOAP) call. Notably, the share function 514 can transmit the request522 using other transport mechanisms because the management server 540is capable of accepting requests via Email, SMS, MMS, etc. Accordingly,those skilled in the art appreciate that any number of other suitabletransport mechanisms may be utilized.

The method continues in FIG. 7B at Circle A, where the management server540 receives the distribute request 522 from the user system 510 (step712) and determines that the message received is a distribute request522 (step 713). The management server 504 builds a distribute template548 (step 714) from the request 522. FIG. 8A is an exemplary distributetemplate 800 a according to the preferred embodiment of the presentinvention. The distribute template 800 a includes information that iscommon to each of the recipients specified in the request 522. Forexample, it includes the message type, an identifier associated with therequest 522, the application identifier 524 and other relevant data asis shown in FIG. 8A.

Referring again to FIG. 7B, once the distribute template 800 a is built,the management server 540 gets a first recipient identified in therequest 522 (step 715), and selects which delivery mechanism of aplurality of mechanisms 552 to call (step 716) based on the address ofthe recipient because each delivery mechanism 552 is associated with acommunication mode, e.g., email, SMS/MMS, ftp. Once identified, themanagement server 540 calls the selected delivery mechanism 552 andpasses the template 800 a to the delivery mechanism 552 (step 717).

The selected delivery mechanism 552 utilizes the template 800 a togenerate and transmit a notify message 544 to the recipient (step 718).The notify message 544 includes the application identifier 524 and asetup mechanism 546. When launched on the recipient's device 530, thesetup mechanism 546 determines, among other things, the device type andoperating system if the application 512 is not already present on thedevice or if it is out-of-date, and whether any data specified in therequest 522 is present on the device 530.

The process for generating and transmitting the notify message 544 (step718) varies with the delivery mechanism 552. For example, FIG. 9 is aflowchart for generating and transmitting the notify message 544 usingan email delivery mechanism according to a preferred embodiment of thepresent invention. In step 900, the email delivery mechanism gets theemail address for the recipient from the management server 540 andconstructs the notify message 544 that includes the applicationidentifier 524 from the distribute template 552 and a script to launchthe setup mechanism 546 (step 902). Next, the setup mechanism 546 isattached to the notify message 544 (step 904), and the notify message554 is sent to the email address (step 906).

Referring again to FIG. 7B, if the message transmitted is a notifymessage 544 (step 719) and more recipients are present (step 720), themanagement server 540 gets a next recipient (step 721) and repeats steps716-720. Otherwise, the management server 540 waits to receive anothermessage (step 722).

After the notify message 544 is sent to the recipient's address, thedistribution process continues in FIG. 7C at Circle B, when therecipient device 530 receives the notify message 544 from the managementserver 540 (step 723). The recipient 231 preferably selects the installbutton in the notify message 544 (step 724), which automatically invokesthe script that launches the setup mechanism 546 (step 725).

As stated above, the setup mechanism 546 determines a number of things,including whether the application 512 is already installed on the deviceand if so, whether it is up-to-date. If the application 512 is not onthe device or if the application 512 is out-of-date, the setup mechanism512 determines the device type (e.g., mobile phone 502 or PC 530), theoperating system environment (e.g., Windows XP or Linux) (step 726). Thesetup mechanism 546 then creates and sends a “get application” (GetApp)request 532 to the management server 540 (step 727). The GetApp request532 preferably includes the application identifier 524, and data andversioning information specific to the operating system environment.

The distribution process continues to Circle C, which points back toFIG. 7B, when the management server 540 receives a message from therecipient device 530 (step 712) and determines that the message is aGetApp request 532 (step 728). In response to the GetApp request 532,the management server 540 builds a GetApp template 548 (step 729) fromthe request 532. FIG. 8B is an exemplary GetApp template 800 b accordingto the preferred embodiment of the present invention. The GetApptemplate 800 b includes the message type, an identifier associated withthe request 522, the appropriate application's 512′ identifier 524, anidentifier associated with the corresponding distribute request 522,information identifying the operating environment constraints, and otherrelevant data as is shown in FIG. 8B.

Referring again to FIG. 7B, once the GetApp template 800 b is built, themanagement server 540 selects the appropriate delivery mechanism 552 tocall (step 716) based on the address of the recipient device 530. Themanagement server 540 then calls the selected delivery mechanism 552 andpasses the template 800 b to the delivery mechanism 552 (step 717). Theselected delivery mechanism 552 utilizes the template 800 b to generateand transmit an install message 554 to the recipient (step 718), wherethe install message 554 includes the install image 216 associated withthe appropriate version of the application 512′ and/or associated data,e.g., images or album data. Note that the message 554 can also include areference to data stored in storage 550 at the management server 540.Such data is preferably retrieved, as needed, when the application 512′is running on the recipient device 530.

After the install message 554 is sent to the recipient's address, thedistribution process continues in FIG. 7C at Circle D, when therecipient device 530 receives the install message 554 from themanagement server 540 (step 730). The setup mechanism 546 launches theinstall image 216 (step 731), which automatically installs theapplication 512′ and associated data, if any (step 732). After theapplication 512′ has been installed persistently on the recipient device530, the install image 216 launches the application 512′ (step 733) andthe application 512′ displays a window 10 (FIG. 1) with the images 20(step 734).

At this point, the setup mechanism 546 transmits an “installed” messageto the management server 540 (735). The installed message is similar tothat 232 (FIG. 2) in the first preferred embodiment, and preferablyincludes distribution data relating to the user 211, the recipient(s)231, the application 512′ and other relevant information.

The distribution process concludes in FIG. 7B at Circle E, when themanagement server 540 receives a message from the recipient device 530(step 712) and determines that the message received is an installedmessage (step 736). The management server 540 records and stores thedistribution data in storage 550 (step 737).

In a preferred embodiment, each step of the distribution process (FIG.6) can be tracked by the management server 540. For instance, themanagement server 540 can log each distribute request 522, noting itemssuch as the sending device 510, specified recipient(s) 530, and theapplication 512 and/or data. The management server 540 can also logGetApp requests 532 and installed messages 232 from recipients 530.Tracking such information is useful for a number of reasons. Forexample, the information can be used to track licensing data, and toanalyze patterns of distribution that occur among users of the variousapplications distributed.

Through aspects of the preferred embodiments of the present invention,an integrated share button in an application or application moduleallows a user to distribute the application or module to specifiedrecipients via a share function. When invoked, the share function allowsthe user to easily share the application or module and associated datawith others without requiring detailed knowledge of the deliverymechanism. Moreover, the distribution process can be monitored andcontrolled by an authoritative entity, such as the licensor, orcorporate IT department.

Although the present invention has been described in accordance with theembodiment shown, one of ordinary skill in the art will readilyrecognize that there could be variations to the embodiments and thosevariations would be within the spirit and scope of the presentinvention. Accordingly, many modifications may be made by one ofordinary skill in the art without departing from the spirit and scope ofthe appended claims.

1. A computer-implemented method for allowing a user to distribute anapplication in an electronic device to at least one specified recipientcomprising: invoking a share function included in an application in anelectronic device; and in response to invoking the share function,automatically determining an install image associated with theapplication, automatically invoking a delivery mechanism to generate amessage addressable to at least one specified recipient, andautomatically attaching information identifying the determined installimage to the message, wherein the install image is an installable copyof the application.
 2. The method of claim 1 further comprising:receiving the install image associated with the application in a deviceassociated with the at least one specified recipient; and automaticallyinstalling and persistently storing the application on the deviceassociated with the at least one specified recipient.
 3. The method ofclaim 1, wherein the install image is a self-installing copy of theapplication.
 4. The method of claim 1, wherein invoking a share functionincludes: displaying a share button when the application is running, theintegrated share button, when selected, for automatically invoking theshare function.
 5. The method of claim 4, wherein displaying the sharebutton includes displaying the share button in at least one of a menuitem, a context menu, and a program start menu.
 6. The method of claim1, wherein the install image associated with the application is storedin the electronic device and further comprising automatically attachingthe determined install image to the message.
 7. The method of claim 1,comprising: receiving at least one address for the at least onerecipient; and sending the message to the at least one recipient via thedelivery mechanism.
 8. The method of claim 1, comprising: adding dataassociated with the application to the install image prior to attachingthe install image to the message.
 9. The method of claim 1, comprising:providing a script and an install button to the message, wherein whenthe install button is selected by the at least one recipient, the scriptautomatically launches the install image.
 10. The method of claim 1further comprising: sending distribution data related to thedistribution of the application to a computer system for tracking; andstoring the distribution data at the computer system.
 11. Acomputer-implemented method for allowing a user to distribute anapplication in an electronic device to at least one specified recipientcomprising: receiving a first message sent from an electronic device toa computer system for storing a plurality of install images associatedwith a plurality of applications, the first message requesting thecomputer system to distribute an application in the electronic device toat least one recipient, wherein the first message is automaticallygenerated in response to an invoking of a share function included in theapplication in the electronic device and includes at least one addressfor the at least one recipient; and in response to receiving the firstmessage, automatically determining an install image associated with theapplication, automatically invoking a delivery mechanism to generate asecond message addressable to the at least one specified recipient, andautomatically attaching the determined install image to the message,wherein the install image is an installable copy of the application. 12.The method of claim 11, comprising: determining a version of theapplication appropriate for the at least one recipient, whereinautomatically determining the install image includes retrieving theinstall image associated with the appropriate version of theapplication; and sending the message to the at least one recipient viathe delivery mechanism.
 13. The method of claim 12, wherein determininga version of the application further includes: in response to receivingthe first message, sending a third message from the computer system tothe at least one recipient, wherein the third message includes a setupmechanism; querying the at least one recipient by the setup mechanism todetermine an operating environment associated with the at least onerecipient; receiving a fourth message from the setup mechanism to thecomputer system, wherein the fourth message includes information relatedto the at least one recipient and the associated operating environment;and selecting, based on the information in the fourth message, theappropriate version of the application.
 14. The method of claim 11further comprising: tracking distribution information by the computersystem; and storing the distribution information in a database coupledto the computer system.
 15. The method of claim 11, wherein theapplication is a photo album viewing application and the method furtherincludes: adding album data to the install image associated with thephoto album viewing application prior to sending the message includingthe attached install image to the at least one specified recipient. 16.The method of claim 11, wherein the install image associated with theapplication automatically launches the application after the installimage has installed the application onto the device.
 17. The method ofclaim 11, wherein the application comprises one or more modules, atleast one of the modules including an integrated share button, whichwhen selected by the user, invokes the share function.
 18. A computerreadable medium containing program instructions for allowing a user todistribute an application in an electronic device to at least onespecified recipient, the computer readable medium comprisinginstructions for: invoking a share function included in an applicationin an electronic device; and in response to invoking the share function,automatically determining an install image associated with theapplication, automatically invoking a delivery mechanism to generate amessage addressable to at least one specified recipient, andautomatically attaching information identifying the determined installimage to the message, wherein the install image is an installable copyof the application.
 19. A computer readable medium containing programinstructions for allowing a user to distribute an application in anelectronic device to at least one specified recipient, the computerreadable medium comprising instructions for: receiving a first messagesent from an electronic device to a computer system for storing aplurality of install images associated with a plurality of applications,the first message requesting the computer system to distribute anapplication in the electronic device to at least one recipient, whereinthe first message is automatically generated in response to an invokingof a share function included in the application in the electronic deviceand includes at least one address for the at least one recipient; and inresponse to receiving the first message, automatically determining aninstall image associated with the application, automatically invoking adelivery mechanism to generate a second message addressable to the atleast one specified recipient, and automatically attaching thedetermined install image to the message, wherein the install image is aninstallable copy of the application.
 20. A system comprising: a firstdevice comprising: an application having an integrated share button anda share function coupled to the application, wherein when the sharefunction in the first device is invoked via the integrated share button,an install image associated with the application is automaticallydetermined; and a delivery mechanism, automatically invoked to generatea message addressable to at least one user-specified device incommunication with the first device, configured to automatically attachthe determined install image to the message, the install image being aninstallable copy of the application.
 21. A system comprising: a serverin communication with a first device and at least one other device, theserver including: storage for storing a plurality of install imagesassociated with a plurality of applications; and means for receiving afirst message from the first device including a request to distribute anapplication in first device to the at least one other device, whereinthe first message is automatically generated in response to an invokingof a share function included in the application in the first device andincludes at least one address for the at least one other device; whereinin response to receiving the first message, the server is configured toautomatically determine an install image associated with theapplication, automatically invoke a delivery mechanism to generate asecond message addressable to the at least one specified recipient, andautomatically attaching the determined install image to the message,wherein the install image is an installable copy of the application. 22.The system of claim 21, wherein the server is configured to determinewhich version of the application is appropriate for the at least oneother device, and based on this determination, retrieves the installimage associated with the appropriate version of the application. 23.The system of claim 22, wherein the server is configured to send theretrieved install image associated with the appropriate version of theapplication to the at least one other device.
 24. The system of claim21, wherein the user is allowed to attach data associated with theapplication to the install image, thereby distributing the applicationand the associated data.
 25. The system of claim 24, wherein theapplication is a photo album viewing application and the associated dataincludes image data.
 26. The system of claim 21, wherein the servercollects and records distribution data related to the first device andto the user-specified device.